캐릭터 회전시 카메라 회전 버그
원인 분석

오른쪽 위 로그를 주목하자. 위 로그는 GetComponentRotation()메소드로 얻은 카메라의 회전값이다.
캐릭터가 회전할때, 카메라는 회전하지 않으므로 카메라의 회전값이 변하지 않아야 하는데 위 값을 보면 변하는 것을 확인 할 수 있다. 이는 캐릭터 무브먼트 컴포넌트의 Orient Rotation To Movement 옵션을 True로 설정하면 생기는 버그이다.
원인을 추측해 보자면 위 옵션은 캐릭터가 움직이는 방향으로 카메라를 제외하고 캐릭터를 회전시키는 옵션인데 카메라는 캐릭터의 컴포넌트 이기 때문에 캐릭터가 회전하고 후에 카메라의 Transform을 후보정 하는 순서로 실행되는 듯 하다. 그리고 GetComponentRotation()함수는 그 사이에 호출이 되었기 때문에 보정되지 않은 값이 나오는듯 하다. 정리하자면
- 캐릭터 회전
- GetComponentRotation() 호출
- 카메라 Transform보정
해결
간단했다...GetViewRotation()으로 얻으면 버그 없이 잘 나온다.
GetViewRotation으로 하면 Forward벡터와 Location을 다 계산해야 하는데, 다하고 보니 더 쉬운 방법이 있었다.
해당 클래스의 Tick 순서를 뒤로 옮길수 있었다.

클래스 디폴트 탭에서 Tick Group을 Post Update Work로 옮겼더니 해결 되었다.